package com.t.bricks.bussiness.controller.recharge;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.t.bricks.bussiness.db.entity.recharge.Recharge;
import com.t.bricks.bussiness.service.recharge.RechargeService;
import com.t.bricks.model.MsgEmity;

/**
 * 充值管理控制层
 * 继承BaseController可直接实现通用方法,三个泛型代表:业务类、实体类、查询类
 * 通用业务类CommonService已经包含常用功能,使用自定义RechargeService(需实现)可覆盖通用方法或扩展业务功能
 * 通用查询类可以直接使用Map,否则使用自定义ConditionRecharge(需实现)
 * @author HuangXinBian
 * @DateTime 2022年06月22日 15:25:31
 */
@RestController
@Api(value="充值管理", tags={"充值管理操作接口"})
@RequestMapping("/recharge/")
public class RechargeController {
	
	@Autowired
	private RechargeService rechargeService;
	
	/**
	 * 标记删除
	 * @param uId
	 * @param iVersion
	 * @param sRecordKey
	 * @return
	 */
	@ApiOperation(value="标记删除", notes="非物理删除")
	@RequestMapping(method={RequestMethod.POST}, value="/del")
	public MsgEmity signDel(String uId, Integer iVersion, String sRecordKey) {
		return rechargeService.signDel(uId, iVersion, sRecordKey);
	}

	/**
	 * 根据记录编号查询符合分页数据的某条记录
	 * @param uId 记录编号
	 * @return MsgEmity
	 */
	@ApiOperation(value="根据记录编号查询符合分页数据的某条记录", response=Recharge.class)
	@RequestMapping(method={RequestMethod.POST}, value="/find/page/row")
	public MsgEmity findByPageRow(String uId) {
		return rechargeService.findByPageRow(uId);
	}

	/**
	 * 查询分页数据
	 * @param findByPageParam 分页查询条件组合类
	 * 结构参考: {"page": 分页请求信息对象, "orders": 排序信息对象集合, "sLikeStr": 全文检索, "condition": 查询条件对象}
	 * @return MsgEmity 返回查询结果
	 */
	@ApiOperation(value="查询分页数据", response=Recharge.class)
	@RequestMapping(method={RequestMethod.POST}, value="/find/page")
	public MsgEmity findByPage(String sStates, Integer pageCurrent, Integer pageSize) {
		return rechargeService.findByPage(sStates, pageCurrent, pageSize);
	}

}
